package com.kerrykidz.authority.dao.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.kerrykidz.authority.dao.model.SecRole2objEntity;
import com.kerrykidz.authority.dao.model.SecRoleEntity;
import com.rdp.framework.exception.RDPException;
import com.rdp.util.model.TreeModel;
/***
 * 
 * @ClassName: AuSecRoleEntityMapper 
 * @description: 角色配置  授权对象
 * @author: wolf-yansl 
 * @date: 2014年9月17日 上午10:29:56 
 * @version: V1.0
 *
 */
@Repository
public interface AuSecRoleEntityMapper {
	
	/**
	 * 获取  资源节点  及 子节点
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月17日
	 */
	public List<TreeModel> getGblSecObjByPid(@Param("pid")String pid)throws RDPException;
	/**
	 * 角色名称查询
	 * @param pid
	 * @return
	 * @throws RDPException
	 * @date: 2014年11月6日
	 */
	public SecRoleEntity getByRoleName(@Param("roleName")String roleName)throws RDPException;
	
	/***
	 * 获取符合条件的role数据
	 * 	模糊角色名称    or  角色Id
	 * @param roleEntity
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月17日
	 */
	public List<SecRoleEntity> getByRoleWhere(SecRoleEntity roleEntity)throws RDPException;
	
	/**
	 *   保存  角色
	 * @param roleEntity
	 * @throws RDPException
	 * @date: 2014年9月17日
	 */
	public void insertRole(SecRoleEntity roleEntity)throws RDPException;
	
	/**
	 *   保存 角色 和 授权关联
	 * @param roleObjList
	 * @throws RDPException
	 * @date: 2014年9月17日
	 */
	public void insertRoleObj(@Param("roleObjList")List<SecRole2objEntity> roleObjList,@Param("roleId")String roleId)throws RDPException;
	
	/**
	 * 删除 角色关联授权数据
	 * @param fkRoleId
	 * @throws RDPException
	 * @date: 2014年9月17日
	 */
	public void deleteRoleObj(@Param("fkRoleId")String fkRoleId)throws RDPException;
	
	/***
	 * 获取所有关联角色授权
	 * @param fkRoleId
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月17日
	 */
	public List<SecRole2objEntity> getByIdRoleObj(@Param("fkRoleId")String fkRoleId)throws RDPException;
	
	/***
	 * 修改角色
	 * @param roleEntity
	 * @throws RDPException
	 * @date: 2014年9月17日
	 */
	public void updateRole(SecRoleEntity roleEntity)throws RDPException;
	
	/**
	 * 删除角色
	 * @param roleEntity
	 * @throws RDPException
	 * @date: 2014年9月17日
	 */
	public void deleteRole(SecRoleEntity roleEntity)throws RDPException;
	
	
}